/**
 * 
 * 下载文件
 * ios手机直接打开文件，手动存储文件到手机，Android手机从根目录创建文件夹
 * Android手机文件保存的位置不易查找, 将文件保存在 ‘file://storage/emulated/0/盐城湿地大保护/’
 * 
 */

function fSetFileName(sFilePath, url) {
	console.log(sFilePath, url);
	let dtask = plus.downloader.createDownload(url, {
			filename: "file://storage/emulated/0/盐城湿地大保护/" //在手机存储更目录创建一个文件夹，把文件存储进去，并更改会原名
		},
		(d, status) => {
			if (status == 200) {
				let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
			} else {
				plus.downloader.clear(); //清除下载任务
			}
		})
	dtask.start();
}

export function downLoadFiles(fileUrl, i = 0) {

	let _this = this;
	//获取地址后缀

	//判断是否为（图片或视频）
	if (fileUrl.substring(fileUrl.length - 3) == "MP4" || fileUrl.substring(fileUrl.length - 3) == "mp4" || fileUrl
		.substring(fileUrl.length -
			3) == "jpg" || fileUrl.substring(fileUrl.length - 3) == "png") {

		const downloadTask = uni.downloadFile({
			url: fileUrl,
			success: res => {
				if (res.statusCode === 200) {
					if (res.tempFilePath.substring(res.tempFilePath.length - 3) == "mp4" || res
						.tempFilePath.substring(res.tempFilePath.length - 3) == "MP4") { //视频
						//保存视频到相册
						uni.saveVideoToPhotosAlbum({
							filePath: res.tempFilePath,
							success: function() {
								uni.showToast({
									title: '保存成功',
									icon: 'seccess',
									duration: 2000,
									mask: true
								});
							},
							fail: function(err) {
								console.log(err);
								// this.loadProgress = 0;
								uni.showToast({
									title: '保存失败',
									icon: 'error',
									duration: 2000,
									mask: true
								});
							}
						});
					} else { //图片
						// 图片保存到手机相册
						uni.saveImageToPhotosAlbum({
							filePath: res.tempFilePath,
							success: function() {
								uni.showToast({
									title: '保存成功',
									icon: 'success',
									duration: 2000,
									mask: true
								});
							},
							fail: function(err) {
								console.log(err);
								// this.loadProgress = 0;
								uni.showToast({
									title: '保存失败',
									icon: 'error',
									duration: 2000,
									mask: true
								});
							}
						});
					}
				} else {
					console.log(res);
					uni.showToast({
						title: '下载失败',
						icon: "error",
						duration: 2000,
						mask: true
					})
				}
			},
			fail: (err) => {
				console.log(err);
				uni.showToast({
					icon: "error",
					mask: true,
					title: '下载失败',
					duration: 2000
				});
				return i;
			}
		});
		downloadTask.onProgressUpdate((res) => {
			console.log(res.progress, i);
			if (res.progress == 100) {
				uni.showToast({
					title: `第${i+1}个下载成功`,
					icon: "success",
					mask: true,
					duration: 1000
				})
			}
			//  else {
			// 	uni.showToast({
			// 		title: `下载中请勿退出`,
			// 		icon: "loading",
			// 		mask: true,
			// 		duration: 10
			// 	})
			// }
			// console.log(res);
			// console.log('下载进度' + res.progress);
			// console.log('已经下载的数据长度' + res.totalBytesWritten);
			// console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
			// if() {}
		})
	} else {
		//下载文件为非图片和视频的文件
		// let _this = this;

		const downloadTaskt = uni.downloadFile({
			url: fileUrl, //下载地址接口返回
			success: (data) => {
				uni.hideLoading()
				if (data.statusCode === 200) {
					var sFilePath = data.tempFilePath
					var sFileName = fileUrl.split('/')[fileUrl.split('/')
						.length - 1]; //原来的文件名


					//文件保存到本地
					uni.saveFile({
						tempFilePath: data.tempFilePath, //临时路径
						success: function(res) {

							var savedFilePath = res.savedFilePath;
							let osname = plus.os.name;
							//ios手机直接打开文件，手动存储文件到手机，Android手机从根目录创建文件夹
							if (osname == 'Android') {
								uni.showToast({
									icon: 'success',
									mask: true,
									title: '保存成功',
									duration: 1000,
								});
								fSetFileName(res.savedFilePath, fileUrl);
							} else {
								setTimeout(() => {
									//打开文档查看
									uni.openDocument({
										filePath: res.savedFilePath,
										success: function(res) {
											console.log("成功打开文件")
										},
										fail(err) {
											console.log(err);
											console.log("打开文件失败")
										}
									})
								}, 1000)
							}
						},
						fail: function(err) {
							console.log(err);
						}
					});

				} else {
					console.log(data);
					uni.showToast({
						icon: "error",
						mask: true,
						title: "下载失败"
					})
				}
			},
			fail: (err) => {
				console.log(err);
				uni.showToast({
					icon: "error",
					mask: true,
					title: "下载失败"
				})
			}
		})

		downloadTaskt.onProgressUpdate((res) => {
			console.log(res);
			console.log('下载进度' + res.progress);
			console.log('已经下载的数据长度' + res.totalBytesWritten);
			console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
		})
	}
}